home *** CD-ROM | disk | FTP | other *** search
/ SunSoft Catalyst CDWARE 1996 May to August / Catalyst CDWARE 1996 May to August.iso / .products / .bin / httpd / Solaris_1 / catIPX.csh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-10-25  |  5KB  |  179 lines

  1. #!/bin/csh 
  2. # below is a scrpit launched by catIPX.pl from CDware 
  3. # It ultimately generates a query page to be 
  4. # displayed by the cgi-bin/catIPX.pl script.
  5. # Jun 6, 1995 Marc Sacoolas
  6.  
  7. setenv ONLY_ONE spam
  8.  
  9. set testdrvflg = 0
  10. set installflg = 0
  11. set osflg = 0
  12.  
  13. #
  14. # Get search string, filter-type and category
  15. #
  16.  
  17. set keyword = `awk -F^ '{ print $1 }' /tmp/httpd/tmp `
  18. set install = `awk -F^ '{ print $2 }' /tmp/httpd/tmp `
  19. set testdrive = `awk -F^ '{ print $3 }' /tmp/httpd/tmp `
  20. set ostype = `awk -F^ '{ print $4 }' /tmp/httpd/tmp | sed 's/ //g'`
  21.  
  22. # clear temporary files 
  23.  
  24. rm /tmp/httpd/tmppage.html
  25. #touch /tmp/httpd/tmppage.html
  26. rm /tmp/httpd/top
  27. touch /tmp/httpd/top
  28.  
  29. #
  30. # goto index.html directory and grep files for keyword --main list
  31. #
  32.  
  33. cd ../../../../.products
  34.  
  35.  
  36. foreach dir (`ls`)
  37.  
  38. if ( $dir == "hotjava" || $dir == "tmp" || $dir == "CDware" )  next 
  39.  
  40. # set flags for filters
  41. if ( $ostype != "OSType" ) then 
  42.  
  43.         set osflg = ` nawk -F^ ' { if (NR == 2) exit; if ( $3 ~ /'"$ostype"'/ ) {print "0"} else {print "1"} }' $dir/_info `
  44.  
  45. endif 
  46.   
  47.  
  48. if ( $testdrive == "testdrive" ) then
  49.  
  50.         set testdrvflg = ` awk -F^ ' { if (NR == 2) exit; if ( $3 ~ /'"$testdrive"'/ ) {print "0"} else {print "1"} }' $dir/_info `
  51.  
  52. endif    
  53.  
  54.  
  55. if ( $install == "install" ) then 
  56.  
  57.         set installflg = ` awk -F^ ' { if (NR == 2) exit; if ( $3 ~ /'"$install"'/ ) {print "0"} else {print "1"} }' $dir/_info `
  58.  
  59. endif
  60.  
  61. # check to see if a blank query is given - make it *all*
  62.  
  63. if ( $keyword != "ALL" ) then
  64.  
  65. set yes  = `grep -il $keyword $dir/index.html ` 
  66.  
  67. else 
  68.  
  69. set yes = "spam"
  70.  
  71. endif
  72.  
  73. if ( $yes != "" && $installflg == "0" && $testdrvflg == "0" && $osflg == "0") then
  74.  
  75.  
  76. # read in company name and log
  77.  
  78. nawk -F^ ' { if (NR == 1) { \
  79. print ""$1"^"$2"^'"$dir"'^"} \
  80. }' $dir/_info  >> /tmp/httpd/top 
  81.  
  82. endif
  83.  
  84. set testdrvflg = 0
  85. set installflg = 0
  86.  
  87. end
  88.  
  89. sort -o /tmp/httpd/top.sort /tmp/httpd/top 
  90.  
  91. cd ../.products/.bin/httpd/cgi-bin
  92.  
  93.  
  94.  
  95. #
  96. # creat new page based on resource file generated above 
  97. #
  98.  
  99.  
  100. if ( -z /tmp/httpd/top.sort ) then
  101. cat head.html > /tmp/httpd/tmppage.html
  102.         echo "<p><hr><center>" >> /tmp/httpd/tmppage.html
  103.         echo "<h1>Your search produced no results</H1>" >> /tmp/httpd/tmppage.html
  104.         echo "<h2><p>Try again, or use category, company, or product listings.</H1>" >> /tmp/httpd/tmppage.html
  105.         echo "<p></center>" >> /tmp/httpd/tmppage.html
  106.         echo '<app class=delay sound="./main.au" img="../../../CDware/images/comp-prod/clear.gif" del="4800" href="file:///tmp/httpd/.products/CDware/search.html"> ' >> /tmp/httpd/tmppage.html
  107.  
  108. else 
  109.  
  110. cat head.html > /tmp/httpd/tmppage.html
  111.  
  112. # get number of answers and print
  113. set return = `grep -c ^ /tmp/httpd/top`
  114.  
  115. # if only one reslut, go there
  116.  
  117. if ( $return == 1 ) then
  118.  
  119. touch /tmp/httpd/only_one
  120. exit 0
  121.  
  122. endif
  123.  
  124.  
  125. if ( $return == 1 ) then
  126. set booths = "Company."
  127. else
  128. set booths = "Companies."
  129. endif
  130. echo "<I> Your search of  </I>'<B>Companies</B>' <I>for  </I>'<B>$keyword</B>' <I>produced  </I><B>$return</B> <I> $booths</I>" >> /tmp/httpd/tmppage.html
  131. echo "<p>" >> /tmp/httpd/tmppage.html
  132.  
  133. # make main txt
  134.  
  135. echo "</pre>" >> /tmp/httpd/tmppage.html
  136. echo "<DL>" >> /tmp/httpd/tmppage.html
  137. echo '<hr>' >> /tmp/httpd/tmppage.html
  138. echo '<p>' >> /tmp/httpd/tmppage.html
  139.  
  140. # only include if over some ammount
  141. if ( $return >= 2 ) then 
  142. echo '<B><FONT size="-1">' /tmp/httpd/tmppage.html
  143. echo '<B>Search for--</b><A HREF="/tmp/httpd/tmppage.html#A">A</A> <A HREF="/tmp/httpd/tmppage.html#B">B</A> <A HREF="/tmp/httpd/tmppage.html#C">C</A> <A HREF="/tmp/httpd/tmppage.html#D">D</A>' >> /tmp/httpd/tmppage.html
  144. echo '<A HREF="/tmp/httpd/tmppage.html#E">E</A> <A HREF="/tmp/httpd/tmppage.html#F">F</A> <A HREF="/tmp/httpd/tmppage.html#G">G</A> <A HREF="/tmp/httpd/tmppage.html#H">H</A>' >> /tmp/httpd/tmppage.html
  145. echo '<A HREF="/tmp/httpd/tmppage.html#I">I</A> <A HREF="/tmp/httpd/tmppage.html#J">J</A> <A HREF="/tmp/httpd/tmppage.html#K">K</A> <A HREF="/tmp/httpd/tmppage.html#L">L</A>' >> /tmp/httpd/tmppage.html
  146. echo '<A HREF="/tmp/httpd/tmppage.html#M">M</A> <A HREF="/tmp/httpd/tmppage.html#N">N</A> <A HREF="/tmp/httpd/tmppage.html#O">O</A> <A HREF="/tmp/httpd/tmppage.html#P">P</A>' >> /tmp/httpd/tmppage.html
  147. echo '<A HREF="/tmp/httpd/tmppage.html#Q">Q</A> <A HREF="/tmp/httpd/tmppage.html#R">R</A> <A HREF="/tmp/httpd/tmppage.html#S">S</A> <A HREF="/tmp/httpd/tmppage.html#T">T</A>' >> /tmp/httpd/tmppage.html
  148. echo '<A HREF="/tmp/httpd/tmppage.html#U">U</A> <A HREF="/tmp/httpd/tmppage.html#V">V</A> <A HREF="/tmp/httpd/tmppage.html#W">W</A> <A HREF="/tmp/httpd/tmppage.html#X">X</A>' >> /tmp/httpd/tmppage.html
  149. echo '<A HREF="/tmp/httpd/tmppage.html#Y">Y</A> <A HREF="/tmp/httpd/tmppage.html#Z">Z</A>' >> /tmp/httpd/tmppage.html
  150. echo '</FONT></B>' >> /tmp/httpd/tmppage.html
  151. echo '<hr>' >> /tmp/httpd/tmppage.html
  152.  
  153. endif
  154.  
  155. nawk -F^ ' BEGIN {i=65;s=0;letter ="^A.*";rletter = "A"} \
  156. { comp = $1\
  157. if ( comp !~ letter ) {\
  158. for ( x=i;x<=100; ++x ){\
  159. letter = sprintf("^%c.*", x)\
  160. rletter = sprintf("%c", x)\
  161. if ( comp ~ letter ) {i=x;s=0;break}\
  162. }\
  163. }\
  164. if ( comp ~ letter && s==0 ) {\
  165. print "<DT><A NAME=\""rletter"\"><B>"rletter"</B><DD></A><a href=file:///tmp/httpd/.products/"$3"/index.html <b><b>"$1"</b></b></a>"$2"<br>";s=2 \
  166. }\
  167. if ( comp ~ letter && s==1) {\
  168. print "      <DD><a href=file:///tmp/httpd/.products/"$3"/index.html <b><b>"$1"</b></b></a>"$2"<br>"\
  169. }\
  170. s=1\
  171. }' /tmp/httpd/top.sort >> /tmp/httpd/tmppage.html
  172.  
  173. endif
  174.  
  175. cat tail.html >> /tmp/httpd/tmppage.html
  176.  
  177.  
  178. exit 0
  179.